package com.heatup.apt.management.service;

import java.util.List;
import java.util.Map;

import com.heatup.apt.model.management.SysMenu;
import com.heatup.apt.model.management.SysRole;
import com.heatup.apt.model.management.SysUser;

public interface SysUserService {
	
	
	/**
	 * 用户列表
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param pageIndex 当前页面
	 * @param pageSize 当前页面大小
	 * @param nickName 姓名
	 * @param mobile 手机
	 * @param status 状态
	 * @return
	 */
	public Map<Object, Object> queryUserList(int pageIndex,int pageSize,String nickName,String mobile,String status);
	
	/**
	 * 获取所有的菜单
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @return
	 */
	public List<SysMenu> queryMenuList();
	
	/**
	 * 根据用户ID获取用户的菜单权限
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param userId
	 * @return
	 */
	public List<SysMenu> queryUserMenuList(Integer userId);
	
	/**
	 * 查询所有角色list
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @return
	 */
	public List<SysRole> queryAllRole();
	
	/**
	 * 添加一个用户
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param userName 用户名
	 * @param mobile 手机
	 * @param password 密码
	 * @param roleId 角色ID
	 * @param userId 用户ID
	 * @param menusId 菜单权限
	 * @return
	 */
	public int addUser(String userName,String mobile,String password,Integer roleId,Integer userId,String menusId, Integer storeId);
	
	/**
	 * 修改用户信息
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param userName 用户名
	 * @param mobile 手机
	 * @param roleId 角色ID
	 * @param userId 用户ID
	 * @param id ID
	 * @param menusId 菜单权限
	 * @return
	 */
	public int updateUser(String userName,String mobile,String password,Integer roleId,Integer userId,Integer id,String menusId);
	
	/**
	 * 删除用户 by ID
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param id 用户ID
	 * @return
	 */
	public int deleteUserById(Integer id);
	
	/**
	 * 根据ID获取用户
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param id 用户ID
	 * @return
	 */
	public SysUser queryUserById(Integer id);
	
	
	/**
	 * 修改密码
	 * <P>Author : fangxiaowen </P>      
	 * <P>Date : 2016年10月14日 </P>
	 * @param oldPwd 原密码
	 * @param newPwd 新密码
	 * @param userId 当前用户
	 * @return
	 */
	public int updatePassword(String oldPwd,String newPwd,Integer userId);

	/**
	 * 更新系统用户
	 *
	 * @param sysUser
	 * @return
	 */
    int updateByPrimaryKeySelective(SysUser sysUser);
}
